package com.tjec.project.projectWorkbench.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tjec.framework.aspectj.lang.annotation.Excel;
import com.tjec.project.system.domain.BmsAttachment;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tjec.framework.web.domain.BaseEntity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 项目合同对象 bms_project_contract
 * 
 * @author tjec
 * @date 2020-04-26
 */
public class BmsProjectContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id 主键 */
    @JsonIgnore
    private String id;

    /** 项目ID */
    @ApiModelProperty(value = "项目ID")
    private String projectId;

    /** 合同名称 */
    @ApiModelProperty(value = "合同名称")
    private String name;

    /** 合同编号 */
    @ApiModelProperty(value = "合同编号")
    private String code;

    /** 签约日期 */
    @ApiModelProperty(value = "签约日期(yyyy-MM-dd)")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date signDate;

    /** 合同性质 */
    @ApiModelProperty(value = "合同性质")
    private String nature;

    /** 合同取费方法条款 */
    @ApiModelProperty(value = "合同取费方法条款")
    private String feeCollectionTerms;

    /** 合同服务器条款 */
    @ApiModelProperty(value = "合同服务器条款")
    private String serverTerms;

    /** 合同服务内容备注 */
    @ApiModelProperty(value = "合同服务内容备注")
    private String serviceContentRemark;

    /** 合同签约单位备注 */
    @ApiModelProperty(value = "合同签约单位备注")
    private String signingUnitRemark;

    /** 合同项目概况备注 */
    @ApiModelProperty(value = "合同项目概况备注")
    private String projectOverviewRemark;

    /** guid */
    @ApiModelProperty(value = "guid（后台自动生成）")
    private String guid;

    /** 合同其他备注 */
    @ApiModelProperty(value = "合同其他备注")
    private String otherRemark;

    /** 项目合同全局ID*/
    @ApiModelProperty(value = "项目合同全局ID")
    private String globalId;

    /** 时间戳 */
    @ApiModelProperty(value = "时间戳")
    private String timeStamp;

    /** 附件id集合 */
    @ApiModelProperty(value = "附件id集合,传参使用")
    private ArrayList<String> attachmentIds;

    @ApiModelProperty(value = "附件集合")
    private List<BmsAttachment> bmsAttachments;

    public ArrayList<String> getAttachmentIds() {
        return attachmentIds;
    }

    public void setAttachmentIds(ArrayList<String> attachmentIds) {
        this.attachmentIds = attachmentIds;
    }

    public List<BmsAttachment> getBmsAttachments() {
        return bmsAttachments;
    }

    public void setBmsAttachments(List<BmsAttachment> bmsAttachments) {
        this.bmsAttachments = bmsAttachments;
    }

    public String getTimeStamp() {
        return timeStamp;
    }

    public void setTimeStamp(String timeStamp) {
        this.timeStamp = timeStamp;
    }

    public String getGlobalId() {
        return globalId;
    }

    public void setGlobalId(String globalId) {
        this.globalId = globalId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setSignDate(Date signDate) 
    {
        this.signDate = signDate;
    }

    public Date getSignDate() 
    {
        return signDate;
    }
    public void setNature(String nature) 
    {
        this.nature = nature;
    }

    public String getNature() 
    {
        return nature;
    }
    public void setFeeCollectionTerms(String feeCollectionTerms) 
    {
        this.feeCollectionTerms = feeCollectionTerms;
    }

    public String getFeeCollectionTerms() 
    {
        return feeCollectionTerms;
    }
    public void setServerTerms(String serverTerms) 
    {
        this.serverTerms = serverTerms;
    }

    public String getServerTerms() 
    {
        return serverTerms;
    }
    public void setServiceContentRemark(String serviceContentRemark) 
    {
        this.serviceContentRemark = serviceContentRemark;
    }

    public String getServiceContentRemark() 
    {
        return serviceContentRemark;
    }
    public void setSigningUnitRemark(String signingUnitRemark) 
    {
        this.signingUnitRemark = signingUnitRemark;
    }

    public String getSigningUnitRemark() 
    {
        return signingUnitRemark;
    }
    public void setProjectOverviewRemark(String projectOverviewRemark) 
    {
        this.projectOverviewRemark = projectOverviewRemark;
    }

    public String getProjectOverviewRemark() 
    {
        return projectOverviewRemark;
    }
    public void setGuid(String guid) 
    {
        this.guid = guid;
    }

    public String getGuid() 
    {
        return guid;
    }
    public void setOtherRemark(String otherRemark) 
    {
        this.otherRemark = otherRemark;
    }

    public String getOtherRemark() 
    {
        return otherRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("name", getName())
            .append("signDate", getSignDate())
            .append("nature", getNature())
            .append("feeCollectionTerms", getFeeCollectionTerms())
            .append("remark", getRemark())
            .append("serverTerms", getServerTerms())
            .append("serviceContentRemark", getServiceContentRemark())
            .append("signingUnitRemark", getSigningUnitRemark())
            .append("projectOverviewRemark", getProjectOverviewRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("guid", getGuid())
            .append("otherRemark", getOtherRemark())
            .toString();
    }
}
